package config

import (
	log "github.com/sirupsen/logrus"
	"github.com/spf13/viper"
	"sync"
)

var config *Config
var once sync.Once

// Init 初始化配置文件
func Init() {
	v := viper.New()
	v.SetConfigName("config")
	v.AddConfigPath("./config/")
	v.SetConfigType("yaml")

	if err := v.ReadInConfig(); err != nil {
		log.Error(err)
		return
	}
	c := new(Config)
	if err := v.Unmarshal(c); err != nil {
		log.Error(err)
		return
	}
	config = c
}

// GetConfig 获取配置文件对象
func GetConfig() *Config {
	if config == nil {
		once.Do(Init)
	}
	return config
}

type Config struct {
	KongGang KongGang `yaml:"konggang"`
	Log      Log      `yaml:"log"`
}
